import { fileSave, viewFile } from '@/api/modules/tool/file/file';
import { openImage, openNotepad, openVideo } from '@/global/window/widget';
import { blobToBase64, blobToText } from '@/utils/file/file';
import { isImage, isTxt, isVideo } from '@/utils/file/is.file';

import { message } from 'ant-design-vue';
import type { DataNode } from 'ant-design-vue/es/tree';
import { openWithNotepad } from './file.curd';
import { previewVideo } from '@/store/system/utils';
/**
 * @description: 处理文件，根据不同的类型，调用不同的程序
 */
export const settleFile = async (item: DataNode) => {
  const data = await viewFile(`${item.key}`);
  if (isImage(`${item.key}`)) {
    const src = await blobToBase64(data);
    openImage({
      src,
      mode: 'view',
    });
  } else if (isTxt(`${item.key}`)) {
    const text = await blobToText(data);
    openWithNotepad(text);
  } else if (isVideo(`${item.key}`)) {
    /* 打开视频的专用链接 */
    openVideo(previewVideo(`${item.key}`));
  } else {
    message.warn(`当前没有合适的程序打开。可以使用右键用记事本强行打开`);
  }
};
